// 定义一个事件发射器类
class EventEmitter {
  // 构造函数
  constructor() {
    // 定义一个私有属性，用于存储监听器
    this.#liseners = {};
  }
  // 监听事件
  on(evtName, callback) {
    // 判断当前对象的事件监听器中是否存在指定的事件
    if (!this.#liseners[evtName]) {
      this.#liseners[evtName] = []
    } else {
      this.#liseners[evtName].push(callback)
    }
  }
  // 发射事件
  emit(evtName, data) {
    for (let i = 0; i < this.#liseners[evtName].length; i++) {
      this.#liseners[evtName][i]()
    }
  }

  // 定义一个变量liseners，并赋值为null
  #liseners = null;
}

module.exports = { EventEmitter }